package com.sjd.common.annotation.lock;

import java.lang.annotation.*;

/**
 * 本地锁注解
 * @author rr
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface LocalLock {
    /**
     * key值或者表达式 表达式的使用通过isExpress判断
     * eg:当key中出现args[0],args[1]这样的标识是代表key为表达式
     * args[0]代表将方法的第一个参数替换
     * args[1]代表将方法的第二个参数替换
     * 以此类推
     */
    String key();
    /**
     * 并发触发后的提示
     */
    String errMsg();

    /**
     * key值是否为表达式
     */
    boolean isExpress() default false;
}
